Робота з багатовимірними масивами в мові С

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
УІ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2013
Тип роботи:
Лабораторна робота
Предмет:
Інформатика та обчислювальна техніка
Варіант:
5

Частина тексту файла

Лабораторна робота 11 Тема : «Робота з багатовимірними масивами в мові С» Мета: ознайомлення з поняттям складеного типу даних – масивом та набуття навичок практичної роботи з багатовимірними масивами. Теоретичні відомості В мові С/С++ можливо працювати зі складеними структурами даних – масивами. Розрізняють одновимірні та багатовимірні масиви. Частковим випадком багатовимірних масивів є двовимірні масиви. Обмежень на розмірність масивів, тобто на число індексів, в мові С теоретично немає. Стандарт мови С вимагає, щоб транслятор міг обробляти визначення масивів з розмірністю до 31. Проте частіше всього використовуються одновимірні і двовимірні масиви. Суттєво, що всі елементи матриць або дійсні, або цілі і т.д. Така "однорідність" елементів властива масиву, визначення якого описує тип елементів, ім'я масиву і його розмірність, тобто число індексів, необхідне для визначення конкретного елемента. Крім того, у визначенні вказується кількість значень, яка приймаються кожним індексом. Наприклад, int а[10]; - визначає масив з 10 елементів а[0], а[1] ..., а[9]; float Z[13][[6]; - визначає двовимірний масив, перший індекс якого приймає 13 значень від 0 до 12, другий індекс приймає 6 значень від 0 до 5. Таким чином, елементи двовимірного масиву Z можна перерахувати так: Z[0][0], Z[0][l], Z[0][2],...,Z[12][5] Двовимірний масив – це масив, що складається з окремих одновимірних масивів у вигляді рядків, розмірність яких рівна кількості стовпців матриці. Для цього при визначенні двовимірного масиву у квадратних дужках вказується дві розмірності. Оператор опису двовимірного масиву має вигляд: <тип> <ім’я> [<розмір1>][<розмір2>]; Наприклад: int a[3][5]; // Цілочисельна матриця з 3 рядків і 5 стовпців Масив зберігається у неперервній області пам’яті по рядках, які зберігаються послідовно один за одним, а не у вигляді звичайної двовимірної матриці: a00 a01 a02 a03 a04 a10 a11 a12 a13 a14 a20 a21 a22 a23 a24 | -0-ий рядок- - |-- 1-ий рядок - |- - 2-ий рядок- - | Для доступу до окремого елемента двовимірного масиву використовується конструкція, яка має вигляд a[i][j], де i – номер рядка, j – номер стовпчика. Кожен індекс може змінюватися від 0 до значення, яке на одиницю менше за значення відповідної розмірності. Як і для одновимірного масиву, при описі двовимірного масиву можна задавати початкові значення його елементів. Їх записують у фігурних дужках. Елементи масиву ініціалізуються в порядку їх розміщення у пам’яті. Наприклад: оператор int с[3][4] = {1,2,34,2,3,4,1,3,4,1,2}; визначає матрицю з наступними значеннями елементів: 1 2 3 4 2 3 4 1 3 4 1 2 Можна задавати початкові значення не для всіх елементів масиву. Для цього список значень для кожного рядка береться додатково у фігурні дужки. Наприклад: int d[3][4] = {{0,1,2},{9,-2},{-7,1,6,8}}; В даному випадку розмірність, що позначає кількість рядків, можна не вказувати. Приклад введення та виведення масиву: #include <vcl.h> #pragma hdrstop //--------------------------------------------------------------------------- #include <stdio.h> #include <conio.h> #define n 2 #define m 3 #include <stdlib.h> #pragma argsused int main(int argc, char* argv[]) { int i,j,x[n][m]; for(i=0;i<n;i++) for(j=0;j<m;j++) x[i][j]=-10+rand()%20; for(i=0;i<n;i++) { printf("\n"); for(j=0;j<m;j++) printf(" %5d",x[i][j]); } getch(); return 0; } Приклад виконання роботи: Завдання. Для кожного рядка матрицi знайти i надрукувати суму значень елементiв, що перевищують число Z. Блок-схема алгоритму:  Програмна реалізація: #include <vcl.h> #pragma hdrstop #include<stdio.h> #include<conio.h> #include<values.h> #define n 3 #define m 4 //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { clrscr(); int i,j; float x[n][m], z,s; for(i=0;i<n;i++) for(j=0;j<m;j++) { printf("\n x[%d,%d]", i, j); scanf("%f", &x[i][j]); } printf("\n z:"); scanf("%f",&z); clrscr(); printf("\n Zadano matrica:")...
Антиботан аватар за замовчуванням

19.02.2016 11:02

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини